// pages/swiper/swiper.js
var utilMd5 = require('../../utils/md5.js');

const throttle = require('../../utils/throttle.js')
var app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    isIphoneX: '', //判断是否为iPhoneX
    //是否支持点击按钮弹出授权的方式
    tab: 0,
    // 页面配置   
    winWidth: 0,
    winHeight: 0,
    // tab切换 
    currentTab: 0,
    closeShow: true, //添加到小程序
    indexList: [], //首页列表数据
    recommendedList: [], //为你推荐数据
    // 是否显示授权弹框
    isShowAllowBox: 1,
    bindSuccess: true,
    updateEnds: false, //滑动为你推荐 底部文案显示or隐藏
    updateData: '', //为你推荐底部文案提示
    page: 1,
    pageSize: 8, //推荐每页展示8条数据
    contentColor: '#222222',//文章颜色 点击切换时使用
    scroll_top: 0, //点击tab 标签切换
    setInter: '', //将计时器赋值给setInter
    promiseShowBtns: true,
    checkedArr: [],
    indexUpdateShow:false,  //热榜加载完才显示底部提示
    tabArr: {
      curHdIndex: 0,
      curBdIndex: 0
    }, 
    idArr:[],
  },

  //tab切换
  tab:function(e) {
    var that=this;
    //var dataId = e.currentTarget.dataset.id;
    wx.pageScrollTo({
      scrollTop: 0,
    })
    var dataId = e.currentTarget.id;
    if (dataId == '1') {
      
      let canIUse = wx.canIUse('button.open-type.getUserInfo')
      let canIUsePhone = wx.canIUse('button.open-type.getPhoneNumber')
      let globalUserMsg = wx.getStorageSync('globalUserMsg')
      let globalPhone = wx.getStorageSync('phoneNumber')
      let memcard = wx.getStorageSync('memcard');
      if (!memcard) {
        memcard = wx.getStorageInfoSync('openid')
      }
      wx.request({
        url: app.globalData.requestUrl + '/recommended/getAppIndexRecommend?memCard=' + memcard + "&pageSize=" + that.data.pageSize,
        method: 'get',
        dataType: 'json',
        header: {
          "Content-Type": 'application/x-www-form-urlencoded'
        },
        success: function (res) {
          console.log(res.data.data)
          if(res.data.data.length==0){
            that.setData({              //底部文案显示 加载中
              updateEnds: true,
              updateData: '刷完了，休息一下吧'
            })
          }
          for (var i = 0; i < res.data.data.length; i++) {
            res.data.data[i].imgurl = 'https://files.cn-healthcare.com/' + res.data.data[i].imgurl
          }
          that.setData({
            recommendedList: res.data.data
          })
        }
      })
      if (canIUse || canIUsePhone) {
        if (globalUserMsg || globalPhone) {
          that.checklogin();
        }
      } 
    }
    var obj = {};
    obj.curHdIndex = dataId;
    obj.curBdIndex = dataId;
    this.setData({
      tabArr: obj
    })
   
  },
  // 点击我知道了 首屏弹窗消失 添加到我的小程序弹窗出现
  knowSure: function() {
    console.log(121518512121)
    var that = this
    that.setData({
      promiseShowBtns: false,
      closeShow: false
    })
    setTimeout(function() {
      //要延时执行的代码  添加到我的小程序弹窗3秒后消失
      that.setData({
        closeShow: true
      })
    }, 3000) //延迟时间 这里是1秒
  },
  // 点击关闭添加小程序弹窗
  closeShowBtn: function() {
    this.setData({
      closeShow: false
    })
  },
  // 跳转到友会小程序
  toFriendshipWechat: throttle.throttle(function(e) {
    wx.navigateToMiniProgram({
      appId: 'wx303844c15fef0624',
      path: 'pages/index/index',
      extraData: {
        foo: 'bar'
      },
      envVersion: 'release',
      success(res) {
        // 打开成功
        console.log(res)
      }
    })

  }, 1000),
 
  // 跳转商城小程序
  toshoppingWechat: throttle.throttle(function(e) {
    wx.navigateToMiniProgram({
      appId: 'wx9c21a478555db29c',
      path: 'pages/home/dashboard/index',
      extraData: {
        foo: 'bar'
      },
      envVersion: 'release',
      success(res) {
        // 打开成功
        console.log(res)
      }
    })
  }, 1000),

  // 点击跳转页面详情页
  toNewsDetail: throttle.throttle(function(e) {
    var that = this;
    var idArrs = that.data.idArr
    let arrnum = idArrs.indexOf(e.currentTarget.dataset.ids);
    if (arrnum < 0) { //<0不存在   判断是否选中 此处应有后台checked 字段
      console.log('不变')
    } else { //否则存在
      console.log('改变')
    }
    // console.log(that.data.idArr)
    console.log(e.currentTarget.dataset.index); //当前点击列表的下标
    let $index = parseInt(e.currentTarget.dataset.index) + 1; //因为下标从0开始  所以下标加1
    let article_id = e.currentTarget.id; //当前点击文章id 
    wx.navigateTo({
      url: '../news-detail/news-detail?article_id=' + article_id + '&page=' + $index,
    })

  }, 1000),
  // 点击为你推荐的列表 跳转详情
  toNewsDetailCommon: throttle.throttle(function(e) {
    var that = this;
    console.log(e.currentTarget.dataset.index); //点击当前列表下标
    let $index = e.currentTarget.dataset.index  //下标赋值变量
    let article_id = e.currentTarget.id; //当前文章id
    let shareImgSrc = e.currentTarget.dataset.imgsrc //当前点击列表对象的图片（如有分享需求时使用）
    // if ($index == 0) { //如果点击当前列表下标为0 进入详情就是当前下标
    //   $index = $index 
    // } else {
    //   $index = $index + 1 //否则进入详情就是当前下标+1
    // }
    // 跳转详情 传递文章id 和 当前下标（当前文章）
    wx.navigateTo({
      url: '../news-detail/news-detail?article_id=' + article_id + '&page=' + 0,
    })

  }, 1000),



  // 获取热榜列表信息 页面初始化时 一次性加载
  getIndexInfor: function() {
    var that = this;
    wx.request({
      url: app.globalData.requestUrl + '/article/rebangIndex?&pageSize=' + 50,
      method: 'get',
      dataType: 'json',
      header: {
        "Content-Type": 'application/x-www-form-urlencoded'
      },
      success: function(res) {
        console.log(res.data.data)
        
        if (res.data.data) {
          var indexLength = res.data.data
          // 转换阅读量
          for (var i = 0; i < res.data.data.length; i++) {
          
            that.data.idArr.push(res.data.data[i].id)
            res.data.data[i].click = (res.data.data[i].click / 10000).toFixed(1)
          }
          that.setData({
            indexList: res.data.data, //赋值数据
            indexUpdateShow:true   //数据加载完底部文案提示
          })
        }
      
      }
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    var that = this;
    let isIphoneX = app.globalData.isIphoneX; //判断iPhoneX设备 做兼容
    if (isIphoneX) {
      that.setData({
        isIphoneX: isIphoneX
      })
    }

    wx.getStorage({
      key: 'promiseShow',
      success: function(res) {
        console.log(res.data)
        if (res.data == 1) {
          that.setData({
            promiseShowBtns: false
          })
        }
      },
    })
    // 获取系统信息 
    wx.getSystemInfo({
      success: function(res) {
        that.setData({
          winWidth: res.windowWidth,//页面宽度
          winHeight: res.windowHeight - 80, //页面高度 -80是减去 tab 导航栏高度
        });
      }
    });
  
    that.getIndexInfor()  //页面初始化加载热榜信息
    that.startSetInter()  //每隔一天弹一次添加到小程序弹窗
  },
  // 小程序延时执行 2s 后消失
  startAnimation: function() {
    var that = this;       //将计时器赋值给setInter
    setTimeout(function() {
      //要延时执行的代码
      that.setData({
        closeShow: false
      })
    }, 2000) //延迟时间 这里是1秒
  },
  // 定时器 每隔一天弹出一次
  startSetInter:   function() {      
    var  that =  this;       //将计时器赋值给setInter
    that.data.setInter = setInterval(          function () {              
      that.setData({
        closeShow: true
      })     
    }    , 24 * 3600 * 1000);   //24 * 3600 *1000
  },
  // 点击授权电话号码
  getPhoneNumber: function(e) {
    console.log(e,'getPhoneNumber数据')
    let unionid = wx.getStorageSync('unionid'); //获取unionid
    var nickname = wx.getStorageSync('globalUserMsg').nickName; //获取用户名
    var headimg = wx.getStorageSync('globalUserMsg').avatarUrl; //获取用户头像
    var that = this;
    var jsonData = {
      "data": {
        encryptedData: (e.detail.encryptedData),
        iv: e.detail.iv,
        sessionKey: wx.getStorageSync('session_key') //获取sessionKey
      },
      "memToken": "",
      "timestamp": "1"
    }
    if (!e.detail.encryptedData || !e.detail.iv) { //如果没有e.detail.encryptedData或者e.detail.iv 信息 则return
      return;
    }
   
    wx.login({
      success: res => {
        wx.request({
          url: 'https://www.cn-healthcare.com/freezingapi/api/article/rebangUndecodeUserinfo',
          method: 'post', // 
          data: JSON.stringify(jsonData),
          header: {
            'content-type': 'application/x-www-form-urlencoded' // 默认值
          }, // 设置请求的 header
          success: function(res) {
            console.log(res)
            var phone = res.data.phoneNumber; //获取手机号并同步存储
            wx.setStorageSync('phoneNumber', res.data.phoneNumber)

            console.log(phone);
            // MD5加密
            var md5Tmp = phone + "_" + unionid + "_hmkx_zhw_20181123";
            // console.log(md5Tmp)
            // 加密后字段
            var sign = utilMd5.hexMD5(md5Tmp);
            // console.log(sign)
            var jsonData = {
              "data": {
                mobile: phone,
                unionid: unionid,
                headimg: headimg,
                nickname: nickname,
                sign: sign
              },
              "memToken": "",
              "timestamp": "1"
            }
            wx.request({
              url: app.globalData.requestUrl + 'article/rebangAuthMobile',
              method: 'post', // 
              data: JSON.stringify(jsonData),
              header: {
                'content-type': 'application/x-www-form-urlencoded' // 默认值
              }, // 设置请求的 header
              success: function(res) {
                console.log(res.data)
                wx.setStorageSync('memcard', res.data.data)
                that.setData({
                  bindSuccess: false
                })
              }
            })

          },
          fail: function(err) {
            console.log(err);
          }
        })
      }
    })
  },

  //点击授权按钮
  onGotUserInfo: throttle.throttle(function(e) {
    var that = this;
    wx.setStorageSync('encryptedData', e.detail.encryptedData) //密文 encryptedData
    wx.setStorageSync('iv', e.detail.iv) //偏移向量 iv
    let userMsg = e.detail.userInfo; //获取用户信息
    if (userMsg) {                  
      wx.setStorageSync('globalUserMsg', userMsg)   //如果拿到用户信息 存储起来
      var sessionKey = wx.getStorageSync('session_key'); //获取session_key
      var encryptedData = e.detail.encryptedData  //赋值密文
      var iv = e.detail.iv                        //赋值偏移量
      var unionid = wx.getStorageSync('unionid'); //获取unionid 判断有无
      if (unionid) { //如果有unionid 说明在公众号 或者 app授权过 关注过
        console.log('登录');
        that.checklogin();   // 判断登录
      } else { //没有关注过公众号，或者没有登陆过App，通过wx.login是无法获取到该用户UnionID
        console.log('未登录')
        //密文和偏移向量由客户端发送给服务端，对这两个参数在服务端进行Base64_decode解编码操作
        var jsonData = {
          "data": {
            encryptedData: (e.detail.encryptedData),
            iv: e.detail.iv,
            sessionKey: wx.getStorageSync('session_key')
          },
          "memToken": "",
          "timestamp": "1"
        }
        // 请求接口拿到unionid 请求接口拿到unionid 请求接口拿到unionid 请求接口拿到unionid 
        wx.request({
          url: 'https://www.cn-healthcare.com/freezingapi/api/article/rebangUndecodeUserinfo',
          method: 'post', //
          data: JSON.stringify(jsonData),
          header: {
            'content-type': 'application/x-www-form-urlencoded' // 设置请求的 header
          }, 
          success: function(res) {
            console.log(res)
            var unionid = res.data.unionId   //获取到unionid并存储
            wx.setStorageSync('unionid', unionid);
            console.log(unionid, '123')
            that.checklogin();
          },
          fail: function(err) {
            console.log(err);
          }
        })
      }
    } else {
      that.setData({
        isShowAllowBox: 1
      })
    }
    that.setData({
      isShowAllowBox: 1
    })


  }, 1000),


  // 登录授权 判断用户是否登录
  checklogin: function(opt) {
    var that = this;
    var unionid = wx.getStorageSync("unionid"); //获取存储的unionid请求接口检测登录授权
    wx.request({
      url: "https://www.cn-healthcare.com/freezingapi/api/article/rebangWxLogin?unionid=" + unionid,
      method: "get",
      dataType: "json",
      header: {
        "Content-Type": "application/x-www-form-urlencoded"
      },
      success: function(res) {
        console.log(res.data);
        if (res.data.code == 0) { //已经绑定
          wx.setStorageSync("nobind", false);
          that.setData({
            bindSuccess: false  //绑定过 弹窗消失
          })
          //这里调用接口获取用户信息,并存储memcard
          wx.setStorageSync("token", res.data.datas.token);
          wx.setStorageSync("memcard", res.data.datas.memcard);
        } else if (res.data.code == 207) { //手机号没有绑定健康界账号
          wx.setStorageSync("unionid", unionid); //存储unionid
          wx.setStorageSync("nobind", true); //没有绑定
          if (opt !== true) {
            that.setData({
              isShowAllowBox: 0
            })

          }
        }
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    var that = this;
    if (that.data.promiseShowBtns == true) {
      wx.setStorage({
        key: 'promiseShow',
        data: 1,
      })
    }

  },

  /**
   * 生命周期函数--监听页面隐藏
   */

  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {
    var that = this

    clearInterval(that.data.setInter)
    clearTimeout(that.data.startAnimation)
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {
    //为你推荐数据  向上滑动时
      var that = this;
      let memcard = wx.getStorageSync('memcard'); //获取memcard
      if (!memcard) {
        memcard = wx.getStorageSync('openid') //无memcard 使用openid
      }
      console.log('滑动加载数据')
      // 滑动加载数据 每次加载8条
      wx.request({
        url: app.globalData.requestUrl + '/recommended/getAppIndexRecommend?memCard=' + memcard + "&pageSize=" + that.data.pageSize,
        method: 'get',
        dataType: 'json',
        header: {
          "Content-Type": 'application/x-www-form-urlencoded'
        },
        success: function (res) {
          wx.hideLoading()
          var update_list = that.data.recommendedList; //赋值
          console.log(res.data.data.length)
          console.log(res.data.data)
          if (res.data.data.length == 0) {  //如果数据加载完 显示文案 刷完了，休息一下吧
            that.setData({
              updateEnds: true,
              updateData: '刷完了，休息一下吧'
            })
          } else {                        //否则 循环遍历请求过来的数据 就数据添加新数据
            for (var i = 0; i < res.data.data.length; i++) {
              update_list.push(res.data.data[i]);
              res.data.data[i].imgurl = 'https://files.cn-healthcare.com/' + res.data.data[i].imgurl  //图片路径拼接
            }
            that.setData({              //底部文案显示 加载中
              updateEnds: true,
              updateData: '加载中...'
            })
          }
          that.setData({                //数据赋值
            recommendedList: update_list
          })
        }
      })
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function(res) {
    var that = this;
    if (res.from === 'button') {
      console.log("来自页面内转发按钮");
      console.log(res.target);
    } else {
      console.log("来自右上角转发菜单")
      let shareImg = that.data.head_img;
      let code = wx.getStorageSync('my_code');
      return {
        title: '健康界',
        imageUrl: '../img/shareimg.jpg',
        path: "/pages/index/index",
        success: function(res) {
          console.log("转发成功");
        },
        fail: function(res) {
          console.log("转发失败")
        }
      }
    }



  }
})